package com.aaa.mbs.service;

import com.aaa.common.util.Result;
import com.aaa.mbs.entity.Member;
import com.aaa.mbs.entity.MemberVo;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * (Member)表服务接口
 *
 * @author yuxiujie
 * @since 2021-01-21 16:09:03
 */
public interface MemberService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Member queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<Member> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param member 实例对象
     * @return 实例对象
     */
    Member insert(Member member);

    /**
     * 修改数据
     *
     * @param member 实例对象
     * @return 实例对象
     */
    Member update(Member member);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 通过实体作为筛选条件查询
     *
     * @param member 实例对象
     * @return 对象列表
     */
    PageInfo<Member> queryAll(int pageNo, int pageSize, Member member);


    /**
     * 功能描述:根据用户名获取用户信息
     *
     * @param userName String
     * @return com.aaa.common.util.Result<com.aaa.common.bo.User>
     */
    Member getMemberByUserName(@RequestParam("userName") String userName);

    Result<Integer> queryMemberByPhone(String phoneNum);

    Result<Boolean> insertMember(MemberVo memberVo);

    Result<Boolean> passwordBack(String phoneNum,String password,String code);

    void updateAccount(Integer memberId, Double amount);

    Result<Boolean> updatePassword(Integer memberId,String oldPassword,String newPassword);

    double updateAccountAndIntegration(int memberId, double totalPrice);
}